-
-
Notifications
You must be signed in to change notification settings - Fork 8
Update Beta to Main #116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Beta to Main #116
Conversation
- Replace "Professional Audio Documentation" with "Professional Event Documentation" across PDF exports (ProductionPage.tsx, AllProductionSchedules.tsx, AllRunOfShows.tsx, CommsPlannerEditor.tsx, AudioPage.tsx, AllTheaterMicPlots.tsx, AllPatchSheets.tsx, AllCorporateMicPlots.tsx, AllCommsPlans.tsx, PrintCommsPlanExport.tsx) - Fix TS/ESLint in AllRunOfShows: type `onclone: Document` and cast html2canvas options to `any` to allow `letterRendering` (no behavior change) - Bump root version to 1.5.6.4
Replace `any` types with proper TypeScript interfaces and fix unused variables across multiple page components: **Type Safety Improvements:** - AllCommsPlans.tsx: Added proper types for transceiver/beltpack data and jsPDF autoTable usage - AllCorporateMicPlots.tsx: Defined PresenterEntry interface, fixed HTML element casting - AllPatchSheets.tsx: Created comprehensive input/output entry types with connection details - AllRunOfShows.tsx: Added proper types for live show data and table structures - AllTheaterMicPlots.tsx: Replaced any types with ActorEntry and proper interfaces - AudioPage.tsx: Added extensive type definitions for all data structures and PDF generation - CommsPlannerEditor.tsx: Fixed property change handlers and autoTable type casting **Code Quality Fixes:** - Removed unused error variables in catch blocks across all files - Fixed HTML element style property access with proper casting - Replaced `any` type assertions with specific jsPDF interface extensions - Added proper error handling with instanceof Error checks **React Hooks:** - Added intentional eslint-disable comments for hooks dependencies that would cause unnecessary re-renders - Used useCallback for handleSave to prevent dependency cycles These changes eliminate 112+ ESLint errors while maintaining existing functionality and improving type safety throughout the codebase.
Fixed React hooks exhaustive-deps warning in CommsPlannerEditor component: - Wrapped runAssignmentLogic function in useCallback hook to prevent recreation on every render - Added proper dependencies (beltpacks, setBeltpacks) to useEffect dependency array - Prevents unnecessary re-renders and eliminates ESLint warning about missing dependencies This ensures the auto-assignment logic for beltpack-to-transceiver connections runs efficiently without causing performance issues or infinite re-render loops.
Add pnpm build as a prerequisite step before running pnpm dev in both the Quick Start and Detailed Setup Guide sections. This ensures users build the project before starting development. - Added step 6 "Build the Project" with `pnpm build` command - Renumbered subsequent steps in both sections - Maintains consistency between Quick Start and Detailed Setup Guide
Update PDF export footer text across all components and fix ESLint errors (reduce tech debt).
Commit Description: Version bump from 1.5.6.4 to 1.5.6.5 to include the new lens calculator feature. Changes: - Updated package.json version to 1.5.6.5 - Updated softwareVersion in index.html JSON-LD schema to 1.5.6.5 - Added comprehensive changelog entry for lens calculator feature The lens calculator provides professional projection planning tools with: - Throw distance and image size calculations - Multiple aspect ratio support (16:9, 16:10, 4:3, 21:9) - Preset lens configurations for common projectors - Interactive visual diagram for setup planning - Professional-grade accuracy for event production
- Fix React Hook useCallback warning in LensCalculatorV2 - Replace 'any' types with proper TypeScript interfaces - Remove unused imports and variables - Remove destructive TRUNCATE statements from migration - Fix lens shift feasibility calculation bug - Replace hardcoded user ID with authenticated user - Fix duplicate part numbers in seed data - Add validation to prevent zero dimension calculations
…ional AV features Complete redesign of the projector lens calculator with industry-grade accuracy and professional workflow.
…r list
- Remove keyboard shortcuts (Ctrl+1-4, Ctrl+K) and related UI hints
- Require search input to display projectors - no default list shown
- Tone down UI design to match sounddocs style:
- Replace gradients with solid gray backgrounds
- Simplify card designs and reduce shadows
- Use consistent indigo color theme
- Remove flashy visual effects
- Maintain all functionality while improving design consistency
feat(lens-calculator): simplify UI design and remove default projector list
… state - Replace direct numeric input values with string-based input state to prevent typing interference - Add separate string states for all numeric inputs (screenWidthInput, projectorDistanceInput, etc.) - Sync string inputs with numeric values via useEffect hooks - Update aspect ratio and preset handlers to maintain both string and numeric state - Fix issues where typing multi-digit numbers would get cut off or formatted prematurely - Resolve problems with select-all, backspace, and entering "0" values Now users can type naturally without interference from toFixed() formatting during input.
- Fix backspace and typing issues in all numeric inputs by using string-based state - Add typing state tracking to prevent cross-field interference during input - Round calculated fields to 1 decimal place to avoid long decimal chains - Allow empty inputs without auto-resetting to defaults - Cross-field updates only happen on blur, not during typing - Maintain aspect ratio calculations while preserving natural typing experience
fix(lens-calculator): resolve input handling issues with string-based state
Fix critical memory leaks in capture agent (FOR REAL THIS TIME!) and chart legend display issues - Fixed memory leaks in buffer pool, DSP cache, FFT plans, and WebSocket cleanup - Resolved QueueFull errors and improved connection handling stability - Updated websockets v12+ compatibility for better connection resilience - Fixed legend white fill consistency for magnitude/phase charts - Improved capture agent stability and reduced frame drops - Bumped capture agent version to 0.1.14
…rFunctionVisualizer - Replace 4 'any' types with proper TypeScript types (ScriptableLineSegmentContext, number | string) - Add missing dependencies (coherenceAlpha, coherenceThreshold) to React useMemo hooks - Maintains all existing functionality while improving type safety - Resolves 4 @typescript-eslint/no-explicit-any errors and 2 react-hooks/exhaustive-deps warnings
…sorry, it's my repo lol) - Remove ruff linting and formatting checks from the GitHub Actions PR workflow. - The Python checks job now only runs optional mypy type checking.
chore(version): v1.5.6.6 – fix memory leaks and chart legend consistency
Major restructuring of agent documentation to improve naming consistency and better reflect actual agent capabilities: Renamed agents (better naming): - accessibility-tester → accessibility-auditor - agent-organizer → agent-orchestrator - api-designer → api-architect - architect-reviewer → architecture-reviewer - backend-developer → backend-engineer - content-marketer → content-marketing-strategist - cpp-pro → cpp-expert - csharp-developer → csharp-dotnet-expert - django-developer → django-expert - dotnet-core-expert → dotnet-core-specialist - dotnet-framework-4.8-expert → dotnet-framework-specialist - embedded-systems → embedded-systems-engineer - flutter-expert → flutter-specialist - frontend-developer → (removed - use react-specialist or ui-engineer) - fullstack-developer → fullstack-feature-owner - golang-pro → go-expert - javascript-pro → javascript-expert - kotlin-specialist → kotlin-expert - machine-learning-engineer → ml-engineer - mcp-developer → mcp-protocol-expert - microservices-architect → distributed-systems-architect - mobile-app-developer → mobile-developer-crossplatform - multi-agent-coordinator → multi-agent-orchestrator - nextjs-developer → nextjs-expert - payment-integration → payment-integration-specialist - php-pro → php-expert - postgres-pro → postgres-expert - python-pro → python-expert - rails-expert → rails-specialist - rust-engineer → rust-systems-engineer - security-engineer → security-infrastructure-engineer - seo-specialist → seo-strategist - spring-boot-engineer → spring-boot-expert - sql-pro → sql-expert - test-automator → test-automation-engineer - ui-designer → ui-ux-designer (+ new ui-engineer for implementation) - vue-expert → vue-specialist - websocket-engineer → websocket-architect - wordpress-master → wordpress-architect (+ wordpress-expert) - workflow-orchestrator → workflow-architect Updated all agent definitions to follow consistent format with: - Clear description field for Task tool usage examples - Standardized model and color inheritance - Improved use case examples and context - Better integration guidelines Removed README.md from agents directory (redundant with Task tool context). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Changed donation links from Stripe to Buy Me a Coffee across the site: - Updated Footer donate link - Updated Hero "Support the Project" link - Updated GitHub FUNDING.yml New donation URL: https://buymeacoffee.com/sounddocs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Fixed TypeScript ESLint error by replacing `any` type with proper `User` type from @supabase/supabase-js. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Previously, moving items in the Run of Show would recalculate ALL start times based on cumulative duration, destroying carefully planned gaps between items (stage changes, intermissions, etc.). Now implements smart gap-preserving logic: - Items with positive gaps (intentional buffers) → gap size preserved - Items with no gaps or overlaps → auto-adjusted to follow previous item - Items without start times → calculated automatically - Item numbers stay sequential after reordering This allows users to maintain their production timing intentions while reordering the show flow. Fixes issue where reordering would mess up all timings. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
The previous implementation had a critical flaw: it compared an item's old absolute start time with the end time of its new preceding item, resulting in incorrect gap calculations. This commit fixes the logic by: 1. Pre-calculating gaps BEFORE reordering - Each item's gap is calculated relative to its CURRENT previous item - Only positive gaps (intentional buffers) are preserved 2. Storing gap values with each item temporarily 3. After reordering, using the stored gaps to set new start times - New start time = previous item's end time + stored gap - This preserves the gap size regardless of position 4. Fixing header timing inconsistencies - Headers with times earlier than cumulative time are adjusted - Prevents misleading header timestamps after reordering Example fix: Before: Item with 5-min gap incorrectly calculated as 13-min gap After: Item correctly maintains its 5-min gap after reordering Addresses PR code review suggestions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit addresses three critical issues in the reordering logic: 1. Fixed gap calculation to use immediate previous item - Previous: Incorrectly accumulated ALL previous items' times - Now: Walks backward to find the immediate previous item, skipping headers - Example fix: Item with 2-min gap was incorrectly calculated as 7-min gap 2. Preserve absolute schedule offset - Previous: Always started recalculation from 00:00:00 - Now: Finds first item with a time and uses that as the base - Benefit: Shows starting at 20:00 (8 PM) maintain that offset after reordering 3. Implement immutable state updates - Previous: Mutated items directly in .map() function - Now: Creates new objects with updated properties - Benefit: Follows React best practices and prevents potential state bugs Additional improvements: - Early return for items without start times during gap calculation - Better header time handling (advance cumulative time if header is ahead) - Cleaner separation of header vs item logic in recalculation These changes ensure gaps are correctly preserved, absolute schedule times are maintained, and React state management follows best practices. Addresses PR code review suggestions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Fixed TypeScript ESLint violations:
- Removed @typescript-eslint/no-explicit-any errors by properly typing objects
- Removed @typescript-eslint/no-unused-vars errors for destructured calculatedGap
Changes:
- Instead of destructuring to remove calculatedGap, explicitly construct clean
objects with only the needed properties
- Properly typed itemWithGap as RunOfShowItem & { calculatedGap?: number }
- Added logic to preserve custom column values while excluding calculatedGap
This maintains the same functionality while satisfying strict TypeScript rules.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Updated ImportShowFlowModal.tsx to clarify that start times should be actual wall-clock times when items/headers occur in the show, not sequential times starting from 00:00:00. Changes: - Field specification: Clarified startTime is absolute show time (e.g., "19:30:00" for 7:30 PM) - Conversion guidelines: Updated time calculation to use actual wall-clock times - Examples: Changed from 00:00:00/00:30:00 to realistic times (18:30:00/19:00:00) - Added explicit note that startTime is NOT relative to show start This fixes confusion where LLMs would generate shows with all times starting at midnight instead of actual show times. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
fix: preserve intentional gaps when reordering Run of Show items and others
…itors Add comprehensive real-time collaboration infrastructure with auto-save, presence indicators, conflict resolution, and document history tracking. ## Collaboration Infrastructure ### Core Collaboration System - Add `useCollaboration` hook for real-time broadcast/presence channels - Add `useAutoSave` hook with optimistic UI and conflict detection - Add `usePresence` hook for tracking active editors and user presence - Implement collaboration.ts with Supabase Realtime integration - Add autoSave.ts with debounced saves and version management - Add offlineQueue.ts for handling offline edit scenarios ### UI Components - Add CollaborationToolbar with save status and active users - Add SaveIndicator with typing/saving/saved states - Add ActiveUsers presence component with avatars - Add EditingIndicator for field-level editing status - Add PresenceIndicator for user activity visualization - Add DocumentHistory modal with version comparison - Add ConflictResolution modal for merge conflict handling - Add VersionDiff component for side-by-side comparisons - Add Tooltip UI primitive (Radix UI based) ### State Management - Add collaborativeDocStore (Zustand) for document state - Add collaboration types for conflicts, history, presence ## Editor Integration ### Real-time Collaboration Enabled - PatchSheetEditor: Full collaboration with broadcast on all field changes - StagePlotEditor: Broadcast for elements, stage size, background images - TheaterMicPlotEditor: Broadcast for actors, name changes - CorporateMicPlotEditor: Broadcast for presenters, name changes - RunOfShowEditor: Collaboration toolbar integrated in header - ProductionScheduleEditor: Auto-save and collaboration support - All editors: Database real-time subscriptions for cross-client sync ### Shared Edit Link Fixes - Fix TheaterMicPlotEditor shareCode parameter for anonymous saves - Fix CorporateMicPlotEditor shareCode parameter for anonymous saves - Enable anonymous users to save via update_shared_resource RPC - Prevent 406 errors for shared edit link users ### Infinite Loop Fixes - Fix PatchSheetOutputs circular dependency (remove ref tracking) - Match PatchSheetInputs pattern for stable remote updates - Ensure broadcasts don't trigger save loops with proper change detection ## Database Migrations ### Version Control System - Add version columns to all document tables - Add last_edited timestamps for conflict detection - Add metadata JSONB columns for collaboration data ### History & Activity Tracking - Create document_history tables for all document types - Add document_activity table for audit logging - Add automatic history triggers on document updates - Enable point-in-time recovery and version comparison ### Collaboration Support Tables - Add pending_saves table for offline queue - Add document_locks table for optimistic locking - Add RLS policies for collaboration features - Enable realtime replication for all document tables ### Shared Resource Updates - Add update_shared_resource RPC function with SECURITY DEFINER - Fix JSONB extraction in RPC for proper field updates - Enable anonymous users to save via share codes - Add proper RETURNING clause for version tracking ## Bug Fixes ### Header Component - Move collaboration toolbar integration to header - Add collaborationToolbar prop for editor integration - Match RunOfShowEditor pattern across all editors ### Share Modal - Update share link generation for collaboration context - Maintain compatibility with existing share workflows ### Supabase Client - Configure realtime options for collaboration channels - Add proper channel cleanup on unmount ## Dependencies - Add @radix-ui/react-tooltip for collaboration UI - Update package.json and pnpm-lock.yaml ## Breaking Changes None - all changes are additive and backward compatible. ## Performance Improvements - Debounced auto-save (1500ms default) reduces database writes - Optimistic UI updates for instant feedback - Broadcast-first architecture for sub-second propagation - Reference-based change detection prevents unnecessary saves ## Security - RLS policies prevent unauthorized access to collaboration data - Share code validation in update_shared_resource RPC - Version mismatch detection prevents data loss - Proper authentication checks for all collaboration features 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Major version bump reflecting the addition of comprehensive real-time collaboration features across all document types. Changes: - Updated root package.json from 1.5.6.6 to 2.0.0 - Updated apps/web/package.json from 1.5.6.8 to 2.0.0 - Added comprehensive CHANGELOG entry documenting: - Real-time collaboration infrastructure with WebSocket support - Shared edit links with anonymous editing capabilities - Document versioning and history tracking - Collaboration UI components and toolbars - Offline support infrastructure - Database schema additions (13 migrations) - Editor integrations (PatchSheet, StagePlot, TheaterMicPlot, CorporateMicPlot) - Bug fixes (infinite loops, 406 errors, JSONB handling) Note: Capture agent version remains at 0.2.0 (unchanged) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
… Show
Added duplicate functionality and fixed UI issues across Run of Show editor and view modes:
Run of Show Editor (RunOfShowEditor.tsx):
- Added duplicate item feature with Copy icon for all items and headers
- Intelligent item numbering: pure numbers increment (5→6), text appends "(copy)"
- Preserves all fields including custom columns and highlight colors
- Fixed critical bug: item numbers now preserved during reordering (no longer auto-renumbered)
- Fixed sticky section header gap: adjusted from top-[49px] to top-[40px]
Show Mode Pages:
- Fixed sticky header gap in ShowModePage.tsx: adjusted to top-[40px]
- Fixed sticky header gap in SharedShowModePage.tsx: adjusted to top-[40px]
These changes ensure:
✓ Users can duplicate items with all properties intact
✓ Custom item names persist when reordering ("Opening Prayer" stays as-is)
✓ Seamless sticky header behavior across all Run of Show views
✓ Duplicate feature available in both regular and shared edit modes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed critical issue where updating an item's start time or duration would only recalculate the immediately following item's timing, not all subsequent items. This left the schedule out of sync. Root cause: `break` statement in calculateNextCueTime function was stopping the cascade after updating first item. Solution: Removed break statement and added cumulative time tracking to properly cascade timing updates through all following items (headers and cue items). Changes: - Modified calculateNextCueTime function (lines 590-634) - Removed break statement after updating first following item - Added cumulativeEndTimeSeconds tracking for proper cascade - All subsequent items now update when any item timing changes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Enhanced the Show Mode and shared view link pages with better visual indicators and fixed auto-scroll behavior for live performance use. Visual improvements: - Changed next cue indicator from red to orange for better distinction - Current cue remains green, next cue now orange (more intuitive) - Updated legend indicators to match new color scheme Auto-scroll fixes: - Fixed auto-scroll positioning to account for sticky header heights - Items now scroll to visible position below all sticky elements - Added proper offset calculation (89px total: 49px table + 40px section) - Added 20px padding offset for better visibility Sticky header layering fixes: - Fixed multi-line section headers showing through next headers - Implemented progressive z-index values (z-11, z-12, z-13...) - Each subsequent header now properly appears on top of previous ones - Prevents text bleed-through when headers wrap to multiple lines Changes: - ShowModePage.tsx: Orange next cue, fixed auto-scroll, z-index layering - SharedShowModePage.tsx: Same fixes applied for consistency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add complete SEO infrastructure with meta tags, structured data, and automated sitemap generation to improve search engine visibility. SEO Infrastructure: - Add automated sitemap generation script (23 URLs with priorities) - Create reusable SEO utilities (canonical URLs, breadcrumbs, helpers) - Add SEOHelmet component for consistent meta tag implementation - Integrate sitemap generation into build process Structured Data (Schema.org): - Add Organization schema with GitHub social proof - Add SoftwareApplication schemas for AcoustIQ Lite & Pro - Add BreadcrumbList schemas for navigation hierarchy - Add FAQ schemas (25 questions across 5 categories) - Remove placeholder rating data to prevent guideline violations Meta Tags & SEO: - Add complete meta tags to 10 major pages: - Landing, Audio, Video, Lighting, Production pages - Analyzer hub, Lite, and Pro pages - Resources and Rates pages - Optimize Landing page description (234→151 chars) - Add canonical URLs to prevent duplicate content - Add Open Graph and Twitter Card tags for social sharing - Add comprehensive keyword targeting Performance & Technical SEO: - Add Netlify performance headers (caching, security) - Add Netlify Lighthouse CI plugin for monitoring - Optimize robots.txt with 20+ disallow rules for auth-gated content - Normalize sitemap URLs with trailing slashes - Remove inaccurate lastmod tags from sitemap Files Created: - apps/web/scripts/generate-sitemap.js - apps/web/src/components/SEOHelmet.tsx - apps/web/src/utils/canonical-url.ts - apps/web/src/utils/breadcrumb-schema.ts - apps/web/src/utils/seo-helpers.ts - apps/web/src/schemas/organization-schema.ts - apps/web/src/schemas/software-schemas.ts - apps/web/src/schemas/faq-schemas.ts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This reverts commit 0f0f9e8.
QOL run of show
Resolves persistent WebSocket connection failures with robust reconnection logic. Changes: - Add useRealtimeSubscription hook with exponential backoff retry strategy - Configurable retry attempts (default: 10) and delays (1s → 30s max) - Proper channel cleanup before reconnect attempts - Jitter to prevent thundering herd problem - Update SharedShowModePage to use new hook instead of manual subscription - Add real-time connection status indicator UI: - Live (green) - Connected and receiving updates - Connecting (blue) - Initial connection attempt - Reconnecting (yellow) - Auto-retry in progress with attempt count - Offline (gray) - Disconnected - Connection failed (red) - Max retries exceeded with manual retry button Before: WebSocket fails → terminal error → manual page refresh required After: WebSocket fails → automatic reconnection with visual feedback 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
fix: add automatic WebSocket reconnection for Run of Show viewer
…wer" This reverts commit 977c101.
Revert "fix: add automatic WebSocket reconnection for Run of Show vie…
✅ Deploy Preview for incandescent-sfogliatella-f7a090 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
CI Feedback 🧐(Feedback updated until commit d43679a)A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
✅ Deploy Preview for sounddocsbeta ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||||||||||
PR Type
Enhancement, Bug fix
Description
Comprehensive lens calculator system: Introduces advanced projection lens scoring with 6 use-case profiles (cinema, presentation, bright_venue, outdoor, mapping, museum, simulation), throw ratio validation, brightness calculations, and environmental suitability scoring
Real-time collaboration features: Implements collaborative document editing with presence tracking, auto-save with debouncing and offline support, and Supabase Realtime integration for multi-user synchronization
Technical rider management: Adds complete technical rider document system with band member tracking, equipment requirements, backline items, and PDF export functionality
Audio signal generation: New signal generator module supporting sine, sweep, and colored noise types with phase-continuous generation for test signal capabilities
Mount and manufacturer compatibility: Introduces comprehensive mount compatibility validation system and manufacturer normalization with fuzzy matching for cross-region projector/lens matching
Ultra Short Throw (UST) calculations: New UST lens calculation system handling zero-offset, negative-offset, mirror-based configurations with barrel distortion and keystone correction
Memory-optimized DSP: Implements memory-aware LRU caching for audio processing with configurable memory limits and improved FFT plan lifecycle management
Shell command safety: Fixes potential shell injection vulnerabilities in lint-staged configuration with proper file path escaping
SEO and metadata updates: Enhanced metadata for technical rider and tour planning features with version bump to 1.5.6.8
Support link update: Changed support link from Stripe to Buy Me a Coffee
Diagram Walkthrough
File Walkthrough
25 files
lensScoring.enhanced.ts
Enhanced Lens Scoring with Multi-Use-Case Supportapps/web/src/lib/lensScoring.enhanced.ts
use-case profiles (cinema, presentation, bright_venue, outdoor,
mapping, museum, simulation)
validation, brightness calculations with ANSI/Center conversion,
elliptical lens shift modeling, and UST handling
dust resistance factors
and installation guidance
lensCalculatorUtils.ts
Lens Calculator Utilities with Database Integrationapps/web/src/lib/lensCalculatorUtils.ts
lenses, and user calculations with filtering support
and category analysis
feasibility checking, and UST detection
scoreLensfunction for backward compatibility and newcalculateCompatibleLensesEnhancedwith comprehensive scoringlensScoring.ts
Phase E Comprehensive Lens Scoring Algorithmapps/web/src/lib/lensScoring.ts
component breakdown
outdoor use cases with configurable weights and penalties
shift, ergonomics, and special features
ScoringBreakdowninterface with compatibility levelsand actionable recommendations
useAutoSave.ts
Auto-Save Hook with Debouncing and Offline Supportapps/web/src/hooks/useAutoSave.ts
and offline support
field-level updates
incoming changes
beforeunload warnings
manufacturerNormalization.ts
Manufacturer Normalization with Fuzzy Matchingapps/web/src/lib/manufacturerNormalization.ts
Levenshtein distance
mappings (e.g., Sharp acquired by NEC)
matching
scoring and cross-manufacturer warnings
mountCompatibility.ts
Projector and Lens Mount Compatibility Validation Systemapps/web/src/lib/mountCompatibility.ts
and lens mounts
Epson, Sony, NEC/Sharp, and Digital Projection systems
cross-manufacturer compatibility checking
broader compatibility assessment
ustCalculations.ts
Ultra Short Throw Projector Lens Calculations and Mountingapps/web/src/lib/ustCalculations.ts
configurations
critical positioning tolerances
installation parameter calculations
collaborativeDocStore.ts
Real-time Collaborative Document Editing Storeapps/web/src/stores/collaborativeDocStore.ts
presence tracking
functionality
reconnection logic
autoSave.ts
Auto-save with Debouncing and Offline Supportapps/web/src/lib/autoSave.ts
conflict detection
offline queue fallback
history snapshots
normalization
collaboration.ts
Real-time Collaboration with Supabase Realtime Channelsapps/web/src/lib/collaboration.ts
Supabase Realtime
user tracking
health checking
lensCalculatorTypes.ts
Projection Lens Calculator Type Definitionsapps/web/src/lib/lensCalculatorTypes.ts
system
calculation results
presets for aspect ratios and screen sizes
offlineQueue.ts
Offline Queue Management with IndexedDBapps/web/src/lib/offlineQueue.ts
restored
availability checking
collaboration.ts
Collaboration and Auto-save Type Definitionsapps/web/src/types/collaboration.ts
collaboration and auto-save
document updates
auto-save configuration types
shareUtils.ts
Share Utils Enhancement for Technical Riders and RLS Bypassapps/web/src/lib/shareUtils.ts
ResourceTypeto includetechnical_ridersupportgetSharedResourceto handle technical_rider table andedit-mode Run of Show links
updateSharedResourceto use RPC function for bypassing RLSwith SECURITY DEFINER
Recordinstead ofanyfordata objects
usePresence.ts
React Hook for Collaborative Presence Trackingapps/web/src/hooks/usePresence.ts
useCollaboration.ts
Real-time collaboration hook for document editingapps/web/src/hooks/useCollaboration.ts
Presence channels
callbacks
re-renders
connected users
supabase.ts
Supabase utility functions for data persistenceapps/web/src/lib/supabase.ts
savePixelMapto return created data using.select().single()fetchUserCountfunction using RPC to count unique usersacross documents
index.ts
Protocol support for signal generation and loopbackpackages/analyzer-protocol/src/index.ts
SignalGeneratorConfiginterface for configurable test signalgeneration
CaptureConfigwith loopback and signal generator optionsUpdateGeneratorMessagetype for runtime signal generator updatesClientMessageunion type to include generator update messagestypes.ts
Type definitions for technical rider documentsapps/web/src/lib/types.ts
BandMember,InputChannel,BacklineItem,StaffRequirement)RiderForExportinterface for complete technical rider documentstructure
specifications
server.py
Signal generation and improved WebSocket connection handlingagents/capture-agent-py/capture_agent/server.py
streaming for macOS compatibility
WeakSetfor automatic cleanup of disconnected WebSocket clientsmessages
and cleanup
dsp.py
Memory-aware caching and DSP optimizationagents/capture-agent-py/capture_agent/dsp.py
functools.lru_cacheconfigurable limits
memory thresholds
signal_generator.py
Audio signal generator for test signalsagents/capture-agent-py/capture_agent/signal_generator.py
(white, pink, brown, blue, violet)
runtime performance
handling
schema.py
Schema definitions for signal generationagents/capture-agent-py/capture_agent/schema.py
SignalGeneratorConfigPydantic model for signal generationconfiguration
CaptureConfigwith loopback and generator optionsUpdateGeneratorMessagefor runtime generator configurationupdates
ClientMessageunion to include new generator message typelens-calculator-worker.js
Web Worker for lens calculator processingapps/web/public/lens-calculator-worker.js
blocking
and features
ProductionPage.tsx
Technical rider document management interfaceapps/web/src/pages/ProductionPage.tsx
export functionality
RiderExportandPrintRiderExportcomponents for PDFgeneration
backline requirements
run-of-shows
1 files
audio.py
Audio Buffer Overflow Handling Refactoragents/capture-agent-py/capture_agent/audio.py
pass
1 files
Footer.tsx
Update Support Link to Buy Me a Coffeeapps/web/src/components/Footer.tsx
2 files
index.html
SEO and metadata updates for technical ridersapps/web/index.html
tour planning
markup
research-analyst.md
Research analyst agent configuration.claude/agents/research-analyst.md
synthesis
principles
1 files
.lintstagedrc.js
Shell command safety improvements for lint-staged.lintstagedrc.js
shellEscapehelper function to properly quote file paths inshell commands
Prettier commands
sqlfluff)
101 files